package com.hyt.it.ogt.ks.enums.log;

import java.util.Arrays;
import java.util.Objects;

/**
 * 异常管理审核状态 0:待处理，1:通过，2：不通过
 *
 * @author zhoumiao
 * @since 2022/11/30 16:16
 **/
public enum ApplyCheckState {
    /**
     * 异常管理审核 人脸核身 设备检测 待处理的数据
     */
    WAIT_HANDLE(0, "待处理"),
    /**
     * 异常管理审核 人脸核身 设备检测 通过的数据
     */
    PASSED(1, "通过"),
    /**
     * 异常管理审核 人脸核身 设备检测 不通过的数据
     */
    NO_PASSED(2, "不通过"),
    ;
    private Integer code;
    private String msg;

    ApplyCheckState(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

    public static int getCodeByMsg(String msg) {
        return Arrays.stream(ApplyCheckState.values())
                .filter(e -> Objects.equals(e.getMsg(), msg))
                .findAny()
                .orElseThrow(() -> new IllegalArgumentException("错误的msg：" + msg))
                .getCode();
    }

    public static String getMsgByCode(int code) {
        return Arrays.stream(ApplyCheckState.values())
                .filter(e -> Objects.equals(e.getCode(), code))
                .findAny()
                .orElseThrow(() -> new IllegalArgumentException("错误的code：" + code))
                .getMsg();
    }

    public static ApplyCheckState getByCode(Integer code){
        for (ApplyCheckState value : ApplyCheckState.values()) {
            if(Objects.equals(code,value.getCode())) {
                return value;
            }
        }
        return null;
    }

}
